package com.gl.glcourses.services.impl;

import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.flex.remoting.RemotingDestination;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.gl.glcourses.repository.ICursosRepository;
import com.gl.glcourses.repository.IRecursoRepository;
import com.gl.glcourses.services.IRecursoServices;
import com.gl.glcourses.vos.Confirmacion;
import com.gl.glcourses.vos.Recurso;
import com.gl.glcourses.vos.constants.Constants;

@Service
@RemotingDestination(channels = { "my-amf" })
@Transactional
public class RecursoServices implements IRecursoServices{

	@Autowired
	ICursosRepository repocurso;
	@Autowired
	IRecursoRepository reporecurso;
	protected final Log logger = LogFactory.getLog(getClass());

	@SuppressWarnings("unchecked")
	@Transactional
	@Override
	public Confirmacion agregarRecurso(Recurso recurso) throws Exception {
		Confirmacion confirmacion = new Confirmacion();

		if (reporecurso.findRecurso("nombre",recurso.getNombre())==null){
			repocurso.save(recurso);
		}
		confirmacion.setEstado(Constants.CONFIRMACION_OK);
		return confirmacion;
	}
	
	/* Traemos el listado de publico objetivo */
	//@Cachea(cacheKey="categorias", expireTime=0)
	@SuppressWarnings("unchecked")
	public List<Recurso> listarRecurso() {
		logger.info("getRecursoList");
		try {
			return reporecurso.getListEntity(Recurso.class);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
	}
	
}		
